In many applications including real-time systems that requires events to occur simultaneously across network nodes with millisecond or sub-millisecond precision, a time synchronization has become more important.
When such systems are required to operate over a wireless network, the problem of establishing a common time base can be a difficult one to solve due to non-deterministic medium access control in the networking stack.
Modern computing systems traditionally adopt one or more standardized networking interfaces for communicating with a variety of remotely located devices. Wi-Fi®, Bluetooth®, ZigBee®, Thread, and Ethernet are some examples of standardized networking protocols and interfaces that are pervasive among consumer and industrial computing systems. It is preferable to implement these standardized protocols over developing a proprietary protocol as a means of interoperability with existing electronic devices and reduced development time. While each standardized networking protocol has advantages and disadvantages in terms of throughput, power consumption, range, and cost, they all lack the capability to synchronize time across the network and therefore have inherently limited use in real-time systems.
Various time synchronization methods have been developed as follows, but they all exhibit many technical problems in accuracy and compatibility with devices using existing standardized protocols.
By way of examples only, “The Flooding Time Synchronization Protocol” to Maroti has proposed taking medium-access control (MAC)-layer timestamps to determine a time offset between two neighboring nodes. However, Maroti requires hardware timestamping, which is not widely available in hardware such as microcontrollers and microprocessors. It also requires custom MAC frames to be exchanged across the network to synchronize nodes, thus resulting in many problems when working with an existing protocol or a third-party networking stack that does not have any provisions for sending custom MAC frames. Moreover, Maroti requires that a timestamp of a transmitter triggering the time synchronization be embedded within a synchronization message itself, which is impossible for protocols using a MAC or application layer encryption.
To address Maroti's dependency on the MAC-layer timestamping, “FTSP+: A MAC Timestamp Independent Flooding Time Synchronization Protocol” to Dorneles has proposed using an interrupt handler to avoid hardware timestamping. However, Dorneles shares all other flaws with Maroti. Additionally, Dorneles takes the unusual step of using the interrupt which signals the end of a clear channel assessment (CCA). This allows one to take a timestamp at the application layer then calculate the delay sending a message between the application layer and the physical layer. This assumes that a collision could not occur after the CCA, which would be particularly problematic if that message were to be retransmitted without replacing the timestamp data. Furthermore, it is not necessarily likely that all radio hardware will have access to this interrupt.
In addition, while U.S. Patent Publication No. 2015/0071309 to Aweya has proposed a method for synchronizing a master and a slave over a multi-hop network, it does not give a solution for synchronizing more than two devices, or synchronizing devices in a decentralized network (no master). However, Aweya also requires hardware timestamping, which is not widely available in microcontrollers and microprocessors. Further, Aweya implies that the synchronization message is defined by the content within the message payload, which in some protocols such as Thread or Bluetooth may be encrypted. Thus, it is unclear how this time synchronization method might be applied to a protocol utilizing a MAC or application layer encryption without breaking it.
Thus, there is a need for a new time synchronization method to address the aforementioned drawbacks of the previously proposed time synchronization methods.